Chybna interpretace ceskych znaku TRichEditem v XP - RESENI!!!

Otázka od: Ing. Jiri Sokol

7. 8. 2004 20:21

Ahoj vsem!
Pokud nekoho trapi problem - viz %subjekt%, tak jsem s pomoci informace od
"Pavel Malinsky <malinsky@pmcom.cz>", ktery mi poskytl odkaz na informaci z:
http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/shellcc/platform/commctls/richedit/richeditcontrols/richeditcontrolreference/richeditmessages/em_setlangoptions.asp
dal dohromady ten problem s RichEditem a ceskymi znaky. Staci shodit druhy bit
v jedne zprave RichEditu - konkretne EM_SETLANGOPTIONS a jeho "flag"
IMF_AUTOFONT.
Takhle by to melo (doufam) vypadat:

uses %uses%, RichEdit;
procedure OpravaRichEdit(Sender: TObject);
var
  tmp:integer;
begin
  if not(Sender is TRichEdit) then exit;
  tmp:=SendMessage((Sender as TRichEdit).Handle, EM_GETLANGOPTIONS, 0, 0);
  tmp:=tmp and not(IMF_AUTOFONT);
  SendMessage((Sender as TRichEdit).Handle, EM_SETLANGOPTIONS, 0, tmp);
end;

Tohle jsem zkousel a funguje to bezproblemu.
Jirka
P.S.:Kdyby mel nekdo nejaky problem, kontaktujte me. Treba soukro.
P.S.II: Pokud byste nekdo chteli zdroje k prikladu, ktery jsem pro tento
priklad udelal, poslu na pozadani (pochopitelne pres soukro mail -> mimo
konferenci)
--------------------------------------------------
Ing. Jiri Sokol; jiri.sokol@seznam.cz; 972 231 187
D6Prof+SP3; WinXPProf+SP1; FB 1.5.0
programator amater


Odpovedá: Pavel Malinsky

8. 8. 2004 8:04

> -----Original Message-----
> From: delphi-l-owner@clexpert.cz
> [mailto:delphi-l-owner@clexpert.cz] On Behalf Of Ing. Jiri Sokol
[...]
> procedure OpravaRichEdit(Sender: TObject);
> var
> tmp:integer;
> begin
> if not(Sender is TRichEdit) then exit;
> tmp:=SendMessage((Sender as TRichEdit).Handle,
> EM_GETLANGOPTIONS, 0, 0);
> tmp:=tmp and not(IMF_AUTOFONT);
> SendMessage((Sender as TRichEdit).Handle,
> EM_SETLANGOPTIONS, 0, tmp);
> end;


Ahoj,

  jeste si dovolim doplnit, ze kdo pouzivate RxRichEdit je mozne
toto vyresit nastaveni property LangOptions, kde lze nastavit na
False atribut rlAutoFont (ktery je implicitne True) . Provede to totez
jako nize uvedeny priklad.

       S pozdravem a pranim prijemneho dne
============================================
| Pavel Malinsky - Mcom | malinsky@pmcom.cz|
|==========================================|
| vyvoj software, poradentsvi a servis IT |
|========================================= |
| Tel: 495 533 442 | GSM: 602 652 203 |
============================================
| ICQ: 322015967 |
==================